828614d8b90b0dad4f5a52d0cb9dca07384b1935,drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java,RuleBuilder,build,#Column#ReturnValueDescr#,310

Before Change


                  declarations );

        root.put( "globals",
                  getUsedGlobals( returnValueDescr.getText() ) );

        root.put( "globalTypes",
                  this.pkg.getGlobals() );

After Change



        List usedDeclarations = getUsedDeclarations( returnValueDescr,
                                                     returnValueDescr.getText() );
        if ( usedDeclarations == null ) {
            return;
        }

        Declaration[] declarations = new Declaration[usedDeclarations.size()];
        for ( int i = 0, size = usedDeclarations.size(); i < size; i++ ) {
            declarations[i] = (Declaration) this.declarations.get( (String) usedDeclarations.get( i ) );
        }

        Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
        FieldExtractor extractor = getFieldExtractor( returnValueDescr,
                                                      clazz,
                                                      returnValueDescr.getFieldName() );
        if ( extractor == null ) {
            return;
        }

        Evaluator evaluator = getEvaluator( returnValueDescr,
                                            extractor.getObjectType().getValueType(),
                                            returnValueDescr.getEvaluator() );
        if ( evaluator == null ) {
            return;
        }

        ReturnValueConstraint returnValueConstraint = new ReturnValueConstraint( extractor,
                                                                                 declarations,
                                                                                 evaluator );
        column.addConstraint( returnValueConstraint );

        StringTemplate st = ruleGroup.getInstanceOf( "returnValueMethod" );

        setStringTemplateAttributes( st,
                                     declarations,
                                     returnValueDescr.getText() );

        st.setAttribute( "methodName",
                         classMethodName );
        st.setAttribute( "text",
                         returnValueDescr.getText() );

        this.methods.add( st.toString() );

        st = invokerGroup.getInstanceOf( "returnValueInvoker" );

        st.setAttribute( "package",
                         this.pkg.getName() );
        st.setAttribute( "ruleClassName",
                         ucFirst( this.ruleDescr.getClassName() ) );
        st.setAttribute( "invokerClassName",
                         ruleDescr.getClassName() + ucFirst( classMethodName ) + "Invoker" );
        st.setAttribute( "methodName",
                         classMethodName );

        setStringTemplateAttributes( st,
                                     declarations,
                                     returnValueDescr.getText() );

        st.setAttribute( "methodName",
                         classMethodName );